[SYSTEMDS-3956] AI Policy Proposal - #2570
Conversation
Assisted-by: AI
| - Generate text intended for use in pull request descriptions, issues, discussions, comments, | ||
| reviews, or responses. |
There was a problem hiding this comment.
I think this specific point is too on the nose. Maybe we combine it with the paragraph before the list
Suggestion:
Agents may perform local analysis, including, for instance, private review notes. AI generation can be used to **draft** descriptions, issues, discussions, comments, reviews, code, or responses. Agents must **under no circumstances**:
There was a problem hiding this comment.
I addressed this point. We mainly want to prevent agents from autonomously creating PRs or posting copy-pasted responses.
|
LGTM. Judging the situation after six months is a good idea. |
ywcb00
left a comment
There was a problem hiding this comment.
@janniklinde thank you very much for preparing this draft and for raising this subject. In my opinion, developing an AI policy for SystemDS is becoming an increasingly pressing issue.
I reviewed the draft and left a few thoughts inline. Please keep in mind that I have only limited experience with agents. So please do not hesitate to correct me If I am making incorrect assumptions.
Overall, I think this draft of the AI policy is well structured, concisely addressing the most important aspects of AI assistance in code contributions.
Nevertheless, I would like to bring the aspect (and paragraph) of "Contributor Understanding" to discussion. The first sentence correctly states that the contributors must understand their code. However, the second sentence tries to define the behavior of the agent by saying that it should judge if the users understood their code. This raises two concerns:
- It is unclear whether an agent can properly "judge" something or not. Furthermore, it is an open ethical question if an agent should "judge" a human.
- If I am not mistaken, this sentence embodies a direct instruction for an agent. This means, we are instructing the agent of a contributor through this markdown file. Can (or should) we include instructive expressions here, considering that agent usage is costly in combination with the instruction to "refuse to generate contribution material"?
I hope I do not stir up too much discussion in this thread. And as I mentioned previously: Please correct me at any time if I am making incorrect assumptions about agents and generative AI.
Thank you and all the best,
David
|
|
||
| - Open pull requests. | ||
| - Open issues. | ||
| - Post project communications. |
There was a problem hiding this comment.
Post project communications is a broad term. Can we make this more explicit?
Also, I think this point does not match the part of the sentence before the colon (requires an action).
| to the submitted work: | ||
|
|
||
| ```text | ||
| Assisted-by: AI |
There was a problem hiding this comment.
Would it make sense to include the name of the model or the name of the agent here instead of just declaring AI? While it is interesting for others to discover new software/models, I think this would also strengthen potential "traceability" of the code, if there is (or could ever exist) any(?).
There was a problem hiding this comment.
It could be helpful for other contributors to see what is used. However, I'm not sure what would then have to be declared. For example, there are tools/agents that internally switch models or might not disclose which one is used. Would it then be sufficient to declare the top-level tools? Or all tools (if used multiple for different parts). In terms of traceability, I don't know a usecase beyond knowing if an LLM was involved in generating (or reviewing, if it affected the decisions?) a commit or not.
| meaningfully contributed to the submitted work: | ||
|
|
||
| ```text | ||
| Assisted-by: AI |
There was a problem hiding this comment.
Similar to above: Should we include the name of the tools?
Thanks for reviewing :) You are right about the judgement part and it really comes down to what types of contributions we expect. I'd say modern agents are able to judge understanding at a high level and the aim of this instruction is to mainly affect low effort external contributions and contributors. In my tests an agent would never block requests that are specific enough (though I only tested it for a couple of examples). I am open to leaving this part out, but given that we occasionally receive submissions from inexperienced contributors, it could be a good tradeoff. In terms of cost, I did not run any experiment but given that the agent is supposed to judge from existing context, it should not create much additional cost (agents mainly get expensive when interacting with the environment) and giving project-specific instructions in this file is fairly standard. There are several repositories (e.g., llama.cpp) that include similar instructions in their AGENTS.md. |
I would separate the AI policy and AGENTS.md (instructions. A policy includes general guidelines regarding what is allowed and what is not beyond personal settings and coding instructions. I suggest, once the policy is decided, we form a AGENTS.md with fine-grained instructions. AGENTS.md will go though changes with newer models, users, and workloads, but a policy, in my opinion, should stay constant. Example: https://forge.sourceware.org/redi/gcc-wwwdocs/commit/4d0793a6a14bf9bfe9e92ac1599840780355199d |
We can separate those two, although I think it would be good to have an initial version up for discussion. I agree that the policy should stay constant (we should move the examples I'm referring to to |
This PR proposes a new AI policy to clarify how AI can and cannot be used for contributions in SystemDS. It is generally inspired by the AI policy of llama.cpp, requiring the author to fully understand and own the contribution.
Assisted-by: AI